{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx": "hidden"
   },
   "source": [
    "# Signals and Systems\n",
    "\n",
    "This repository contains a collection of [Jupyter](https://jupyter.org/) notebooks providing notes and examples to the bachelors course [Signals and Systems](http://www.int.uni-rostock.de/Signal-und-Systemtheorie.428.0.html) read by [Sascha Spors](http://www.int.uni-rostock.de/Staff-Info.23+B6JmNIYXNoPWUxOTliMTNjY2U2MDcyZjJiZTI0YTc4MmFkYTE5NjQzJnR4X2pwc3RhZmZfcGkxJTVCYmFja0lkJTVEPTMmdHhfanBzdGFmZl9waTElNUJzaG93VWlkJTVEPTExMQ__.0.html), Institute of Communications Engineering, Universität Rostock. The notebooks contain computational examples written in [IPython 3](http://ipython.org/), which are best explored in an interactive manner."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx": "hidden"
   },
   "source": [
    "# Table of Contents\n",
    "\n",
    "The contents are still under development. Parts of the notebooks may be revised throughout summer 2019. You are invited to contribute by reporting errors and suggestions as [issues](https://github.com/spatialaudio/signals-and-systems-lecture/issues) on GitHub or directly to [Sascha.Spors@uni-rostock.de](mailto:Sascha.Spors@uni-rostock.de)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Part 1: Continuous Signals and Systems\n",
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Signals and Systems"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Signals"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [Standard Signals](continuous_signals/standard_signals.ipynb)\n",
    "* [Operations](continuous_signals/operations.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Characterization of Systems in the Time Domain"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [Impulse Response](systems_time_domain/impulse_response.ipynb)\n",
    "* [Convolution](systems_time_domain/convolution.ipynb)\n",
    "* [Step Response](systems_time_domain/step_response.ipynb)\n",
    "* [Eigenfunctions and the Transfer Function](systems_time_domain/eigenfunctions.ipynb)\n",
    "* [Example: Analysis of a Passive Electrical Network](systems_time_domain/network_analysis.ipynb)\n",
    "* [Example: Analysis of a Damped Spring Pendulum](systems_time_domain/spring_pendulum_analysis.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# The Laplace-Transform"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [Definition](laplace_transform/definition.ipynb)\n",
    "* [Properties](laplace_transform/properties.ipynb)\n",
    "* [Theorems](laplace_transform/theorems.ipynb)\n",
    "* [Summary of Properties, Theorems and Transforms](laplace_transform/table_theorems_transforms.ipynb)\n",
    "* [Inverse Transform](laplace_transform/inverse.ipynb)\n",
    "* [Analysis of Passive Electrical Networks](laplace_transform/network_analysis.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# The Fourier-Transform"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [Definition](fourier_transform/definition.ipynb)\n",
    "* [Properties](fourier_transform/properties.ipynb)\n",
    "* [Theorems](fourier_transform/theorems.ipynb)\n",
    "* [Summary of Properties, Theorems and Transforms](fourier_transform/table_theorems_transforms.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Characterization of Systems in the Spectral Domain"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [The Transfer Function](systems_spectral_domain/transfer_function.ipynb)\n",
    "* [The Bode Plot](systems_spectral_domain/bode_plot.ipynb)\n",
    "* [Phase and Group Delay](systems_spectral_domain/phase_group_delay.ipynb)\n",
    "* [Combination of Systems](systems_spectral_domain/combination.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Properties of LTI-Systems"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [Causality and Stability](systems_properties/causality_stability.ipynb)\n",
    "* [Classes of Systems](systems_properties/classes.ipynb)\n",
    "* [Idealized Systems](systems_properties/idealized_systems.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Periodic Signals"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [Spectrum](periodic_signals/spectrum.ipynb)\n",
    "* [Relation between Spectrum and Fourier Series](periodic_signals/fourier_series.ipynb)\n",
    "* [Convolution of a Periodic with an Aperiodic Signal](periodic_signals/convolution.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Sampling of Signals"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [Ideal Sampling and Reconstruction](sampling/ideal.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx": "hidden"
   },
   "source": [
    "### Part 2: Time-Discrete Signals and Systems\n",
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "# Discrete Signals"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [Standard Signals](discrete_signals/standard_signals.ipynb)\n",
    "* [Operations](discrete_signals/operations.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Characterization of Discrete Systems in the Time Domain"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [Difference Equation](discrete_systems_time_domain/difference_equation.ipynb)\n",
    "* [Impulse Response](discrete_systems_time_domain/impulse_response.ipynb)\n",
    "* [Linear Convolution](discrete_systems_time_domain/linear_convolution.ipynb)\n",
    "* [Example: Convolution of an Audio Signal with a Room Impulse Response](discrete_systems_time_domain/convolution_room_IR.ipynb)\n",
    "* [Eigenfunctions and the Transfer Function](discrete_systems_time_domain/eigenfunctions.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# The $z$-Transform"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [Definition](z_transform/definition.ipynb)\n",
    "* [Properties](z_transform/properties.ipynb)\n",
    "* [Theorems](z_transform/theorems.ipynb)\n",
    "* [Summary of Properties, Theorems and Transforms](z_transform/table_theorems_transforms.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# The Discrete-Time Fourier Transform"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [Definition](discrete_time_fourier_transform/definition.ipynb)\n",
    "* [Properties](discrete_time_fourier_transform/properties.ipynb)\n",
    "* [Theorems](discrete_time_fourier_transform/theorems.ipynb)\n",
    "* [Summary of Properties, Theorems and Transforms](discrete_time_fourier_transform/table_theorems_transforms.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# The Discrete Fourier Transform"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [Definition](discrete_fourier_transform/definition.ipynb)\n",
    "* [Properties](discrete_fourier_transform/properties.ipynb)\n",
    "* [Theorems](discrete_fourier_transform/theorems.ipynb)\n",
    "* [Summary of Properties, Theorems and Transforms](discrete_fourier_transform/table_theorems_transforms.ipynb)\n",
    "* [The Fast Fourier Transform](discrete_fourier_transform/fast_fourier_transform.ipynb)\n",
    "* [Fast Convolution](discrete_fourier_transform/fast_convolution.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Characterization of Discrete Systems in the Spectral Domain"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx-toctree": {
     "maxdepth": 3,
     "numbered": true
    }
   },
   "source": [
    "* [The Transfer Function](discrete_systems_spectral_domain/transfer_function.ipynb)\n",
    "* [Example: Measurement of an Electroacoustic Transfer Function](discrete_systems_spectral_domain/measurement_acoustic_transfer_function.ipynb)\n",
    "* [Magnitude and Phase](discrete_systems_spectral_domain/magnitude_phase.ipynb)\n",
    "* [Phase and Group Delay](discrete_systems_spectral_domain/phase_group_delay.ipynb)\n",
    "* [Combination of Systems](discrete_systems_spectral_domain/combination.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Properties of Discrete LTI-Systems"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# References\n",
    "\n",
    "The contents base on the following literature:\n",
    "\n",
    "* Bernd Girod, Rudolf Rabenstein, Alexander Stenger, *Einführung in die Systemtheorie*, B.G. Teubner Verlag, 2007.\n",
    "* Bernd Girod, Rudolf Rabenstein, Alexander Stenger, Signals and Systems, Wiley, 2001\n",
    "* Thomas Frey, Martin Bossert, *Signal- und Systemtheorie*, Vieweg+Teubner, 2008.\n",
    "* Alan Oppenheim, Alan Willsky, Hamid Nawab, *Signals and Systems*, Prentice-Hall,1996.\n",
    "* Norbert Fliege, Markus Gaida, *Signale und Systeme: Grundlagen und Anwendungen mit MATLAB*, Schlembach Verlag, 2008.\n",
    "* Mark Wickert, *Signals and Systems for Dummies*, 2013."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Contributors\n",
    "\n",
    "* Sascha Spors (Author)\n",
    "* Frank Schultz (Proofreading)\n",
    "* Till Rettberg (Proofreading)\n",
    "* Matthias Geier (Proofreading)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Copyright**\n",
    "\n",
    "This notebook is provided as [Open Educational Resource](https://en.wikipedia.org/wiki/Open_educational_resources). Feel free to use the notebook for your own purposes. The text is licensed under [Creative Commons Attribution 4.0](https://creativecommons.org/licenses/by/4.0/), the code of the IPython examples under the [MIT license](https://opensource.org/licenses/MIT). Please attribute the work as follows: *Sascha Spors, Continuous- and Discrete-Time Signals and Systems - Theory and Computational Examples*."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
